A graphical user interface on a computer, whether a desktop computer, portable computer, tablet, slate or handheld device, or server computer, generally provides several mechanisms for a user to enter various inputs to the computer, including but not limited to data for applications, values for parameters and settings, and the like. Such mechanisms generally include one or more graphical elements that are displayed. The displayed graphical elements are modified on the display based on user input, to communicate to the user, for example, various information and to indicate back to the user any inputs or selections made by the user. How the graphical elements and selected values change in response to user input is the behavior of the graphical user interface. The process of rendering and displaying such changes to a mechanism in a graphical user interface is called animation.
Such mechanisms in graphical user interfaces generally are touch-based and/or pointer-based and/or keyboard-based mechanisms. A touch-based mechanism is configured to respond to a user's touch on a touchscreen or other touch sensitive device, which in turn provides position and motion information. A pointer-based mechanism is configured to respond to a user's manipulation of an input device which in turn controls the position and motion of a cursor on a display. Some mechanisms in graphical user interfaces are designed to be any of touch-based and pointer-based and keyboard-based mechanisms, depending on the input devices attached to the computer.
There are a few kinds of graphical user interfaces that allow a user to enter values within a large range, or to select values within a large set of options. For example, a text field can allow a user to enter a value directly. As another example, a “slider” is a vertically or horizontally oriented line on which a user manipulates a control. The position of the control along the line represents a value selected by the user, and the length of the line represents the range of possible values. As another example, a menu can be presented to a user, which the user can manipulate to view and locate a value to be selected. Such interfaces can be cumbersome to use on small graphical user interfaces, especially touch-based interfaces, and often lack precision where a large range of values is represented.